In most cases this is equivalent to phi^* I, which is faster but may not take into account other representations of the map.
In the example below, we apply the method to check the birationality of a map (deterministically).
i1 : phi = quadroQuadricCremonaTransformation(5,1)
o1 = -- rational map --
source: Proj(QQ[x, y, z, t, u, v])
target: Proj(QQ[x, y, z, t, u, v])
defining forms: {
2
y*z - v ,
2
x*z - u ,
2
x*y - t ,
- z*t + u*v,
- y*u + t*v,
t*u - x*v
}
o1 : RationalMap (Cremona transformation of PP^5 of type (2,2))
|
i2 : K := frac(QQ[vars(0..5)]); phi = phi ** K
o3 = -- rational map --
source: Proj(frac(QQ[a..f])[x, y, z, t, u, v])
target: Proj(frac(QQ[a..f])[x, y, z, t, u, v])
defining forms: {
2
y*z - v ,
2
x*z - u ,
2
x*y - t ,
- z*t + u*v,
- y*u + t*v,
t*u - x*v
}
o3 : RationalMap (quadratic rational map from PP^5 to PP^5)
|
i4 : p = trim minors(2,(vars K)||(vars source phi))
-e -d -c -b -a
o4 = ideal (u + --v, t + --v, z + --v, y + --v, x + --v)
f f f f f
o4 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i5 : q = phi p
2 2 2
b*e - d*f c*d - e*f - a*b + d - a*c + e - b*c + f
o5 = ideal (u + ---------v, t + ---------v, z + ----------v, y + ----------v, x + ----------v)
d*e - a*f d*e - a*f d*e - a*f d*e - a*f d*e - a*f
o5 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i6 : time phi^** q
-- used 0.643831 seconds
-e -d -c -b -a
o6 = ideal (u + --v, t + --v, z + --v, y + --v, x + --v)
f f f f f
o6 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i7 : oo == p o7 = true |